<template>
  <div class="stutend">
      <h2>学生姓名：{{name}}</h2>
      <h2>学生性别：{{sex}}</h2>
      <h2>当前求和为：{{number}}</h2>
      <button @click="sendStudentName">点我向App组件发送学生名字</button>
      <button @click="unbind">解绑atguigu事件</button>
      <button @click="death">销毁当前Student组件的实例（VC）</button>
      <button @click="add">点我number+1</button>
      <hr/>
  </div>
</template>

<script>
    export default {
        name:'Student',
        data(){
            return{ 
                name:'覃小宝',
                sex:'男',
                number:0
            }
        },
        methods:{
            sendStudentName(){
                // $emit()方法：触发Student实例身上绑定的atguigu自定义事件；
                // 参数1为自定义事件名称，参数2为需要向父组件传递的数据（可以传递多个参数，参数之间用','间隔）。
                this.$emit('atguigu',this.name,666,888,999); 
                // this.$emit('demo');
            },

            unbind(){
                // $off()方法：解绑Student实例身上绑定的事件
                this.$off('atguigu'); // 写法一：只适用于解绑一个事件
                // this.$off(['atguigu','demo']); // 写法二：将多个事件写成一个数组，事件之间使用','分隔，可以一次解绑多个事件。
            },

            death(){
                this.$destroy() // 销毁当前Stutend组件的实例，销毁后所有Stutent实例的自定义事件全部不奏效。
            },

            add(){
                console.log("add被调用了!")
                this.number++
            }
        },
    }
</script>

<style scoped>
    .stutend{
        background-color: orange;
        padding: 5px;
    }
</style>